<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 1  给定一个长字符串   随机出n个不重复的字符    返回  
        // function getNoRepeatStr(str , n){   // cds
        //     var newStr = "";   // 存放n个不重复的字符串 组成的新字符串
        //     // 1 因为不重复   即   不确定循环次数
        //     while(newStr.length < n){
        //         // 随机下标 -> 借助随机数公式  再指定的字符串获取随机下标
        //         // 通过下标 找对应的字符
        //         var index = Math.floor(Math.random() * str.length);
        //         // 判断当前字符 是否出现过
        //         // 借助 indexOf()  查找  出现过返回下标  没有出现-1
        //         // if(newStr.indexOf( str[index] ) === -1){
        //         //     newStr += str[index]
        //         // }

        //         // include()  检测是否包含指定的值  true 包含   false 不包含
        //         if(!newStr.includes(str[index])){
        //             newStr += str[index]
        //         }
        //     }
        //     return newStr
        // }
        // console.log( getNoRepeatStr( "gcdscdsc" , 3 ) ) // 
        // //                            01234567
        // //     c  c
        // console.log( getNoRepeatStr( "cyuydsckjs" , 5 ) )



        // (6)声明一个变量str = “border left width”;灵活运用字符串split（）方法以及for循环得到小驼峰命名 “borderLeftWidth”
        // function changeStr(str , chart){
        //     // 1 按照指定的chart将字符串 转成数组 为了拿到每个完整的单词
        //     var arr = str.split(chart);
        //     console.log(arr)
        //     // 2 根据 返回 的结果可知  第一个单词 不需要改变  所以从下标1开始循环拿到之后的每个单词
        //     // 将不需要改变的第一项[0] 存在一个变量中  用于拼接后面的单词
        //     var res = arr[0];
        //     // 从下标1开始循环拿到之后的每个单词  每个单词是字符串格式  下标0大写  其余小写
        //     for(var i = 1; i < arr.length; i++){
        //         // console.log("每个单词为" + arr[i])
        //         // left -> 0123  0 -> l
        //         res += arr[i][0].toUpperCase() + arr[i].slice(1)
        //     }
        //     return res
        // }
        // console.log( changeStr("border left width" , " ") )  // borderLeftWidth
        // console.log( changeStr("get-element-by-id" , "-") )  // getElementById
        // console.log( changeStr("get/elements/by/tag/name" , "/") ) // getElementsByTagName

        
        // 改造  将大写转小写  小写转大写
        // eg: i LoVE chInA RED    --------->   I lOve CHiNa red
        var  str = "i LoVE chInA RED" , res = "" ;
        // 1 循环遍历拿到 每个字符
        for(var i = 0 ; i < str.length; i++){
            // console.log( str[i] >= '65' , str[i] , str[i] > "65" , str[i] < "91")
            // 2 判断当前字符 str[i] 是大写还是小写  大 转小  否则 转大
            // 思考：？ 如何知道 当前是大的还是小的 ？
            // 1 可以参照关系运算符 两端都是字符串  按照字符串中的规则进行比较  A65   a97
            // 2 将当前字符 转成大写 或小写 与自身全等一致   
            // if(str[i].toUpperCase() === str[i]){
            //     res += str[i].toLowerCase()
            // }else{
            //     res += str[i].toUpperCase()
            // }

            res += str[i].toUpperCase() === str[i] ?  str[i].toLowerCase() : str[i].toUpperCase()
        }
        console.log( res )

    </script>
</body>
</html>